home *** CD-ROM | disk | FTP | other *** search
/ Sound Fx / Sound Fx.iso / Software / UNZIPED / DENOISE / README.txt < prev   
Text File  |  1997-02-20  |  11KB  |  214 lines

  1. _______________________________________________________
  2. D/Noise 1.0d
  3. A Digital Audio Denoising Tool
  4. _______________________________________________________
  5. Windows 95 version
  6.  
  7. (C)  1996 Fast Mathematical Algorithms and Hardware Corporation, 
  8. 1020 Sherman Avenue, Hamden, CT 06514. 
  9. <http://www.fmah.com>
  10.  
  11.  
  12. _______________________________________________________
  13. INTRODUCTION
  14.   This demonstration version is meant to illustrate some of our current 
  15. work in the area of audio signal processing. It is in no way suited for 
  16. commercial denoising. This version will only operate on monophonic 
  17. 16-bit WAV (Audio Interchange File Format) files. In addition, there 
  18. is a limit on the size of the input file of one million sample points.
  19.  
  20.   This version of D/Noise does not support algorithm iteration, i.e.,
  21. the denoising algorithm makes only a single pass through an audio file, 
  22. separating it into what it thinks is coherent and what is noise. In the 
  23. next release, you will be able to specify how many times the algorithm 
  24. will pass through a file and its components to achieve a more thorough 
  25. separation. In addition, you will be able to save a compressed version 
  26. of the denoised file as well as well as apply some basic pre- and post-
  27. processing transforms.
  28.  
  29. _______________________________________________________
  30. Installation
  31. ----------------
  32. This distribution consists of 4 files which should stay together in one 
  33. folder:
  34.  
  35.   (1) Preliminary documentation (this file)
  36.  
  37.   (2) Dnoise.exe, the shell used to run the algorithm
  38.   
  39.   (3) Denoise.dll, the denoising algorithm in a dynamic link library
  40.  
  41.   (4) Caruso.wav, a sample audio file containing a snippet of Enrico 
  42.       CarusoÆs singing, recorded in 1904
  43.  
  44.  
  45. Opening a WAV file for denoising
  46. -------------------------------------------------
  47.     D/Noise performs a one-pass denoising procedure on an open WAV 
  48. file. To open a  file:
  49.     [1] Select "Open..."  from the "File" menu.
  50.     [2] Locate and open a file using the standard file dialog.
  51.  
  52.   You can run the denoising procedure on the entire file or just a short 
  53. segment of it. To select a segment of your source file, click-drag across 
  54. it with the mouse. The toolbar along the top of the main window has a 
  55. couple standard controls for scrolling the wave form representation of 
  56. the file, as well zooming in and out.
  57.  
  58.   The smallest length of the signal you can select is determined by the 
  59. control at the right end of the toolbar at the bottom of the main 
  60. window. This length also determines the size of the sliding signal 
  61. window used in the denoising procedure. A length of 1,024 sample 
  62. points is usually adequate. [NB: the other controls in the bottom 
  63. toolbar are not functional yet and appear disabled.] 
  64.  
  65.  
  66. Setting denoising parameters
  67. ----------------------------------------
  68.   The outcome of the denoising procedure depends on the settings of 
  69. various parameters. The exact meaning of these parameters is 
  70. explained at the end of this document.
  71.  
  72.   To open the denoising algorithm interface, select "Configure..." from 
  73. the "Denoise" menu.
  74.  
  75.   You can select one of two default parameter sets or enter your own. 
  76. To select a default set, click on the "Default 1" or "Default 2" button in 
  77. the "Parameters" frame.
  78.  
  79.   You can also set your own parameter values. You can use the [tab] 
  80. key to jump from one box to the next. You will get an error message if 
  81. you try to enter a value outside the range of a specific parameter.
  82.  
  83.  
  84. Running the denoising procedure
  85. -----------------------------------------------
  86. [1] Setting the output files
  87.     The denoising process will leave your original input file untouched 
  88. and generate two new files. The first of these two new files will 
  89. contain the coherent ("clean") component of the source file and the 
  90. second will contain the noisy component. In an extended procedure 
  91. you could run the process on the noisy file again to extract even more 
  92. coherent parts and add those to the first clean file. This version of 
  93. D/Noise does not yet support this type of iteration (although you can 
  94. do this "by hand"). In the next release, you will be able to specify a 
  95. number of iterations for the algorithm.
  96.  
  97.   Use the Select... buttons to select names and locations for the two 
  98. output files [Hint: if your files are fairly small and you have RAM to 
  99. spare, you may want to put the output files on a RAM disk to speed up 
  100. the process and minimize disk thrashing. You will need the same 
  101. amount of storage for each the coherent and the noisy file as you need 
  102. for your source file].
  103.  
  104. [2] Starting the procedure
  105.     Click the [Denoise All] or the [Denoise Selection] button at the 
  106. bottom of the dialog box. The procedure starts and progress 
  107. information is displayed. You can abort the procedure at any time by 
  108. clicking the [Stop] button. Note, that it may take a little while before 
  109. the algorithm stops, as event polling is kept at a minimum in order not 
  110. to slow down the process. When finished, close the dialog box by 
  111. clicking the [Done] button. You can now open and see/hear the 
  112. resulting coherent and noise files.
  113.  
  114.  
  115. _______________________________________________________
  116. About the D/Noise Algorithm and its Control Parameters
  117.     by Maxim J. Goldberg and Igor Popovic
  118. _______________________________________________________
  119.  
  120. INTRODUCTION
  121.  
  122.   The D/Noise family of algorithms was developed for the purpose of 
  123. removing noise from one dimensional signals, in particular, speech or 
  124. music signals, by the method of denoising proposed by R. Coifman 
  125. and V. Wickerhauser. One starts with a library of orthonormal 
  126. waveforms, which typically includes wavelet packets and local 
  127. trigonometric bases.  A signal is expanded in each basis, and a cost 
  128. assigned to the expansion.  The basis giving rise to the least cost is 
  129. chosen, the coefficients are ordered by magnitude, and a number of the 
  130. leading terms is kept as the coherent part based on a predetermined 
  131. threshold cost of the remaining terms. These leftover terms constitute 
  132. by definition the noisy part of the signal, and can be treated as a new 
  133. signal which can in turn be expanded and separated into its coherent 
  134. and noisy components.
  135.  
  136.   In D/Noise, we use only one library of bases, those arising from the 
  137. dyadic decomposition tree obtained by constructing local sines on the 
  138. frequencies of a smoothly cut window from the signal.  A "best" basis 
  139. is chosen by comparing the cost of a parent node to the sum of the 
  140. costs of the 2 children. In D/Noise, the cost function can be chosen to 
  141. be Shannon entropy or the lp of the coefficients of an expansion. We 
  142. attempt to deal with numerical artifacts arising from the processing by 
  143. (1) allowing shifts in time and frequency, and (2) by segmenting into 
  144. large windows and only using the uncorrupted middle core. The large 
  145. window we are using is 4 times the size of the core. For example, if 
  146. the user selects a signal window of 1,024 samples, internally we slide 
  147. and denoise a window of 4,096 samples and use only its 1,024 wide 
  148. core in the reconstruction. This strategy has proven to give more 
  149. pleasing results than any other "fancy" windowing.
  150.  
  151.  
  152. PARAMETERS
  153.  
  154. (1) Window size
  155. This parameter determines the number of consecutive samples 
  156. processed at one time. Internally, the algorithm slides two "windows" 
  157. of the selected width through the signal, offset by 1/2 their width. In 
  158. addition, each window is extended to both its sides and only the core is 
  159. used in the reconstruction after denoising. The windows should not be 
  160. too narrow, since good frequency resolution is desirable, in particular 
  161. for music. Nor should the windows be too wide, since information 
  162. spread over time might mask local occurrences.  For music, it seems 
  163. that a choice of 512, of 1024, or perhaps 2048 are the sizes to consider 
  164. first.
  165.  
  166. (2) Log2 of reach
  167. This is the log-base-2 of the size of the smallest interval to be 
  168. considered by the local trigonometric transform decomposition tree. 
  169. For example, the preset of 4 will give you 2^4=16 samples as the 
  170. smallest interval to be considered.
  171.  
  172. (3) Energy threshold
  173. This is the energy threshold for discarding coefficients from the 
  174. extracted signal basis. This number, typically .0001, or .000001, 
  175. means that in the chosen basis, those coefficients of size less than 
  176. (energy threshold) * (energy of window segment) are set to zero and 
  177. thus discarded.
  178.  
  179. (4) Entropy
  180.     A real number alpha, to determine which entropy function will be used 
  181. to separate out the noise component: alpha = 0.0 is Shannon entropy, 0 
  182. < alpha < 1 stands for little-l-sub-p norm, where p is 2*alpha. For 
  183. example, entering 0.5 will result in l1 norm being used.
  184.  
  185. (5) Entropy ratio
  186.     This real number specifies the threshold mentioned in (3) above.  A 
  187. ratio of 1.0 or higher means that all the entries of expansion of the 
  188. window segment will be considered to be coherent, while a ratio of 0.0 
  189. or less means that the entire signal coming from each window will be 
  190. considered to be noise.  For music, a good testing entropy ratio may be 
  191. between 0.3 and 0.4  if using Shannon entropy (alpha = 0.0 in (4) 
  192. above); 0.7 works well for alpha = 0.5.
  193.  
  194. (6) Time shift
  195.     A specific value k means the signal is padded with k zeros in front, 
  196. the whole program is run, and then the output files are shifted back to 
  197. the left by k samples.  The purpose of different shifts in time is to have 
  198. the signal window cuts to occur in different places. It is recommended 
  199. that any shifts chosen be prime, or nearly prime numbers, without 
  200. high powers of two occurring in their factorization, and each shift is 
  201. less than one half of the window size set in (1) above.
  202. As mentioned previously, this version does not yet support any type of 
  203. iteration. If you run the algorithm on the same file specifying a 
  204. different time shift on each run, you will have to average the resulting 
  205. files by hand, i.e. using some audio file mixing utility (a free utility 
  206. package for AIFF files will be included with the next release).
  207.  
  208. (7) Frequency shifts
  209.     In this field you can enter up to 9 integer numbers, each specifying 
  210. a shift in the frequency domain of the signal. As in (5), the purpose is 
  211. to average out cutting artifacts from the spectrum when performing the 
  212. adapted local trigonometric transform on the signal's frequencies. 
  213. Small primes are recommended, the default presets should suffice.
  214.